package com.atguigu.spzx.manager.service;

import com.atguigu.spzx.manager.entity.CategoryBrand;
import com.atguigu.spzx.manager.vo.brand.BrandQueryRespVo;
import com.atguigu.spzx.manager.vo.categoryBrand.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;

public interface CategoryBrandService {

    /**
     * 条件分页查询
     *
     * @param pageParam 分页参数
     * @param reqVo     查询条件
     * @return 分页查询结果
     */
    Page<CategoryBrandQueryRespVo> getCategoryBrandPageByQuery(Page<CategoryBrand> pageParam, CategoryBrandQueryReqVo reqVo);

    /**
     * 添加品类和品牌关联
     *
     * @param reqVo 要添加的品类和品牌关联信息
     */
    void saveCategoryBrand(CategoryBrandSaveReqVo reqVo);

    /**
     * 修改品类和品牌关联信息
     *
     * @param reqVo 要修改的品类和品牌关联信息
     */
    void updateCategoryBrandById(CategoryBrandUpdateReqVo reqVo);

    /**
     * 根据ID查询品类和品牌关联详情
     *
     * @param id 品类和品牌关联ID
     * @return 品类和品牌关联详情
     */
    CategoryBrandDetailsRespVo getCategoryBrandById(Long id);

    /**
     * 根据ID删除品类和品牌关联
     *
     * @param id 品类和品牌关联ID
     */
    void deleteCategoryBrandById(Long id);

    /**
     * 根据分类ID查询对应的品牌数据
     *
     * @param categoryId 分类ID
     * @return 品牌数据列表
     */
    List<BrandQueryRespVo> getBrandListByCategoryId(Long categoryId);
}
